package com.igeekhome.dto;

import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

/**
 * @author 汪璇
 */
@Data
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
public class WaybillDto {
    
    private Integer waybillId;
    
    private Integer sendingId;
    
    private Integer destinationId;
    
    private Integer takerId;
    
    //取件员名称
    private String takerName;
    
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss" ,timezone = "GMT+8 ")
    private Date sendTime;
    
    private Integer expressTypeId;
    
    //快件类型名称
    private String expressTypeName;
    
    private Integer transportMethodId;
    
    //运输方式名称
    private String transportMethodName;
    
    private Integer agentWaybillNumber;
    
    private Integer vipId;
    
    private String senderName;
    
    private String senderPhonenumber;
    
    private String senderIdcard;
    
    private String senderPost;
    
    private String detailedAddress;
    
    //寄件人省
    private String province;
    
    //寄件人市
    private String city;
    
    //寄件人区
    private String area;
    
    //寄件人地址
    private String address;
    
    private String recipient;
    
    private String recipientPostcode;
    
    private String recipientDetailedAddress;
    
    //收件人省
    private String recipientProvince;
    
    //收件人市
    private String recipientCity;
    
    //收件人区
    private String recipientArea;
    
    //收件人地址
    private String recipientAddress;
    
    
    private String itemName;
    
    private Integer number;
    
    private BigDecimal weight;
    
    private BigDecimal volume;
    
    private String remarks;
    
    private Integer paymentMethodId;
    
    //支付方式名称
    private String paymentMethodName;
    
    private BigDecimal insuranceCharge;
    
    private BigDecimal serviceCharge;
    
    private BigDecimal otherCharge;
    
    private BigDecimal collectionOnDelivery;
    
    private BigDecimal freight;
    
    private BigDecimal totalMoney;
    
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd" ,timezone = "GMT+8 ")
    private Date createTime;
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    @JsonFormat(pattern = "yyyy-MM-dd" ,timezone = "GMT+8 ")
    private Date updateTime;
    
    private Integer status;
    
    private Integer networkId;
    
    //所属网点名称
    private String networkName;
    
    private Integer transportNetworkId;
    
    //目的网点名称
    private String transportNetworkName;
    
    private String recipientPhonenumber;
    
    private String recipientIdcard;
    
    private String recipientCompany;
    
    private Integer itemTypeId;
    
    //物品类型名称
    private String itemTypeName;
    
    private String url;
    
    private Integer destId;
    
    //目的地名称
    private String destName;
    
    private String fileName;
    /**
     * 条形码
     * @author romeo
     */
    private String barcode;
    
    @Override
    public String toString() {
        return "WaybillDto{" +
                "waybillId=" + waybillId +
                ", sendingId=" + sendingId +
                ", destinationId=" + destinationId +
                ", takerId=" + takerId +
                ", takerName='" + takerName + '\'' +
                ", sendTime=" + sendTime +
                ", expressTypeId=" + expressTypeId +
                ", expressTypeName='" + expressTypeName + '\'' +
                ", transportMethodId=" + transportMethodId +
                ", transportMethodName='" + transportMethodName + '\'' +
                ", agentWaybillNumber=" + agentWaybillNumber +
                ", vipId=" + vipId +
                ", senderName='" + senderName + '\'' +
                ", senderPhonenumber='" + senderPhonenumber + '\'' +
                ", senderIdcard='" + senderIdcard + '\'' +
                ", senderPost='" + senderPost + '\'' +
                ", detailedAddress='" + detailedAddress + '\'' +
                ", province='" + province + '\'' +
                ", city='" + city + '\'' +
                ", area='" + area + '\'' +
                ", address='" + address + '\'' +
                ", recipient='" + recipient + '\'' +
                ", recipientPostcode='" + recipientPostcode + '\'' +
                ", recipientDetailedAddress='" + recipientDetailedAddress + '\'' +
                ", recipientProvince='" + recipientProvince + '\'' +
                ", recipientCity='" + recipientCity + '\'' +
                ", recipientArea='" + recipientArea + '\'' +
                ", recipientAddress='" + recipientAddress + '\'' +
                ", itemName='" + itemName + '\'' +
                ", number=" + number +
                ", weight=" + weight +
                ", volume=" + volume +
                ", remarks='" + remarks + '\'' +
                ", paymentMethodId=" + paymentMethodId +
                ", paymentMethodName='" + paymentMethodName + '\'' +
                ", insuranceCharge=" + insuranceCharge +
                ", serviceCharge=" + serviceCharge +
                ", otherCharge=" + otherCharge +
                ", collectionOnDelivery=" + collectionOnDelivery +
                ", freight=" + freight +
                ", totalMoney=" + totalMoney +
                ", createTime=" + createTime +
                ", updateTime=" + updateTime +
                ", status=" + status +
                ", networkId=" + networkId +
                ", networkName='" + networkName + '\'' +
                ", transportNetworkId=" + transportNetworkId +
                ", transportNetworkName='" + transportNetworkName + '\'' +
                ", recipientPhonenumber='" + recipientPhonenumber + '\'' +
                ", recipientIdcard='" + recipientIdcard + '\'' +
                ", recipientCompany='" + recipientCompany + '\'' +
                ", itemTypeId=" + itemTypeId +
                ", itemTypeName='" + itemTypeName + '\'' +
                ", url='" + url + '\'' +
                ", destId=" + destId +
                ", destName='" + destName + '\'' +
                ", fileName='" + fileName + '\'' +
                ", barcode='" + barcode + '\'' +
                '}';
    }
}
